<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body style="padding:10px;">
<p>说明：
    <span>巧用建造者模式进行对象组合创建（不同的组合生成出所谓的套餐)</span>
</p>
<br/>
<p>当一个类的构造函数参数个数超过4个，而且这些参数有些是可选的参数，考虑使用构造者模式。</p>
<p>正例：类计算机类Computer，其中cpu与ram是必填参数，而其他3个是可选参数</p>
<div style="margin:10px;padding:10px;border:1px solid #000000;white-space: pre-line;">
<br/>    import lombok.Builder;
<br/>    import lombok.Data;
<br/>
<br/>    /**
<br/>    * 计算机实体类
<br/>    *
<br/>    * @author: zouchao
<br/>    * @date: 2021/5/13 11:14
<br/>    * @since 1.0.0
<br/>    **/
<br/>    @Data
<br/>    @Builder
<br/>    public class Computer {
<br/>        /**
<br/>        * cpu 必须
<br/>        **/
<br/>        private String cpu;
<br/>
<br/>        /**
<br/>        * 内存 必须
<br/>        **/
<br/>        private String ram;
<br/>
<br/>        /**
<br/>        * usb接口数量 可选
<br/>        **/
<br/>        private int usbCount;
<br/>
<br/>        /**
<br/>        * 键盘 可选
<br/>        **/
<br/>        private String keyboard;
<br/>
<br/>        /**
<br/>        * 显示器 可选
<br/>        **/
<br/>        private String display;
<br/>
<br/>    }
</div>
<br/>
<p>根据要构建的产品种类产生多个实体构建者类，这里我们构建两种品牌的电脑，苹果电脑和联想电脑</p>
<div style="margin:10px;padding:10px;border:1px solid #000000;white-space: pre-line;">
<br/>    Computer macComputer = Computer.builder()
<br/>        .cpu("I5处理器")
<br/>        .ram("三星125")
<br/>        .usbCount(2)
<br/>        .keyboard("苹果键盘")
<br/>        .display("苹果显示器")
<br/>        .build();
<br/>    Computer lenovoComputer = Computer.builder()
<br/>        .cpu("I7处理器")
<br/>        .ram("海力士222")
<br/>        .usbCount(4)
<br/>        .keyboard("联想键盘")
<br/>        .display("联想显示器")
<br/>        .build();

</div>
</body>
</html>